#include <cstdio>
#include <algorithm>
#include <cstring>
#define _clr(x,a) memset(x,a,sizeof(x))
using namespace std;
const int N=100020;
char s[N];
int Next[N];
void kmp_pre(char* p){
    _clr(Next,0);
    int i=0;
    int j=-1;
    int l=strlen(p);
    Next[0]=-1;
    while(i<l){
        if(j==-1 || p[i]==p[j]){
            i++;
            j++;
            Next[i]=j;
        }
        else{
            j=Next[j];
        }
    }
}
int main(void){
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%s",s);
        kmp_pre(s);
        int n=strlen(s);
        // for(int i=0;i<=n;i++){
        //     printf("%d ",Next[i]);
        // }
        // printf("\n");
        //考虑abcabca这种情况
        // int cnt=n-2*Next[n];
        // if(cnt<0){
        //     cnt=0;
        // }
        //这里算出的cnt是应该的循环节长度
        //比如abcabca Next[7]是4 即前面字符串循环节为4 但如果这样算 这个串已经符合条件了 输出0
        //但实际上这里的循环节只能算3 即7-4 所以还要补充2位
        int cnt=n-Next[n];
        if(n%cnt==0){
            cnt=0;
        }
        else{
            cnt=cnt-n%cnt;
        }
        if(Next[n]==0){
            cnt=n;
        }
        printf("%d\n",cnt);
    }
    return 0;
}
